const express = require("express");
const moment = require("moment");
const {cors} = require("./modules/middleware");
const contentListM = require("./modules/Db/collections/contentList");
const app = express();
app.use(express.json());
app.use(cors());// 支持跨域访问
// 添加微博
app.post("/weibo", async (req, res) => {
	try {
		// 1- 接收数据
		const {context} = req.body;
		// 2- 操作数据库
		// 2-1-微博内容不允许重复
		const count = await contentListM.count({context});
		if (count === 0) {
			// 2-2-添加至数据库当中
			await contentListM.insertOne({
				context,
				addTime: moment().format("YYYY-MM-DD hh:mm:ss")
			})
			// 3- 给予响应
			res.json({
				ok: 1,
				msg: "添加成功"
			})
		} else {
			res.json({
				ok: -1,
				msg: "微博内容不允许重复"
			})
		}
	} catch (err) {
		console.log(err);
		res.json({
			ok: -1,
			msg: "网络连接错误！"
		})
	}
})
// 获取微博
app.get("/weibo/:pageSize/:pageNo", async (req, res) => {
	try {
		// 接收每页显示的条数，以及页码
		const pageSize = (req.params.pageSize || 3) / 1;
		let pageNo = (req.params.pageNo || 1) / 1;
		// 总条数
		const count = await contentListM.count();
		// 总页数
		let pageSum = Math.ceil(count / pageSize);
		// 判断总页数是否小于1
		if (pageSum < 1) pageSum = 1;
		// pageNo不能小于1，不能大于总页数
		if (pageNo < 1) pageNo = 1;
		if (pageNo > pageSum) pageNo = pageSum;
		// 获取微博列表
		const contentList = await contentListM.find({
			sortObj: {addTime: -1},
			limit: pageSize,
			skip: (pageNo - 1) * pageSize
		});
		res.json({
			ok: 1,
			msg: "成功",
			contentList,
			pageSum,
			pageNo
		})
	} catch (err) {
		res.json({
			ok: -1,
			msg: "网络连接错误"
		})
	}
	
	
})
// 根据ID删除微博
app.delete("/weibo/:id", async (req, res) => {
	try {
		const {id} = req.params;
		await contentListM.deleteOneById(id);
		res.json({
			ok: 1,
			msg: "删除成功"
		})
	} catch (err) {
		console.log(err);
		res.json({
			ok: -1,
			msg: "网络连接错误"
		})
	}
	
})
// 修改微博
app.put("/weibo/:id/:type", async (req, res) => {
	try{
		const {id, type} = req.params;
		let $inc = {topNum: 1};
		if (type / 1 === 2) {
			$inc = {downNum:1}
		}
		await contentListM.updateOneById(id, {
			$inc
		})
		res.json({
			ok:1,
			msg:"修改成功"
		})
	}catch (err){
		console.log(err);
		res.json({
			ok:-1,
			msg:"网络连接错误"
		})
	}
	
	
	
})
app.listen(8081, () => {
	console.log("success-->8081");
})